package cn.forkway.domain;

import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @program: java-learn-spring
 * @className: teacher.java
 * @author: River Ray
 * @description:
 * @createTime 2021年10月13日 22:33:00
 */

/**
 * 引用类型
 * @Autowired: spring框架提供的注解，实现引用类型的赋值。
 * spring中通过注解给引用类型赋值，使用的是自动注入原理 ，支持byName, byType
 * @Autowired:默认使用的是byType自动注入。
 *
 *  位置：1）在属性定义的上面，无需set方法， 推荐使用
 *       2）在set方法的上面
 *
 *  如果要使用byName方式，需要做的是：
 *  1.在属性上面加入@Autowired
 *  2.在属性上面加入@Qualifier(value="bean的id") ：表示使用指定名称的bean完成赋值。
 */

@Component("teacher01")
@Data
public class Teacher {
    @Value("李老师")
    private String name;
    @Value("2222")
    private Integer id;

    @Autowired
    @Qualifier("school01")
    private School school;

    @Resource
    private School school2;


}
